#include <bits/stdc++.h>
using namespace std;
#define int long long 
int ret=0;

signed main(){
    int n,k;cin>>n>>k;
    vector<int>arr(n);
    priority_queue<int,vector<int>>q;//默认是的大堆
    for(int i=0;i<n;i++){
        cin>>arr[i];
        if((arr[i]&1)==0){
            q.push(arr[i]);
        }
        else {
            ret+=arr[i];
        }
    }
    
    {
        while(k--&&!q.empty()){
            auto var=q.top();q.pop();
            var/=2;
            if((var&1)==0){
                q.push(var);
            }
            else{
                //如果是奇数，就不需放到队列中了
                ret+=var; 
            }
        }
    }
    //计算偶数的值
    {
        while(!q.empty()){
            auto x= q.top();q.pop();
            ret+=x; 
        }
    }
    cout<<ret<<endl; 
    return 0;
}